/*
Copyright (c) 2025 HeZongLun
NahidaProject is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan
PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/

#include "NahidaMockTest.h"

void NahidaProject::NahidaMockTest::Assertion::Fail(const std::string& message, std::source_location location) {
	std::cerr << "Assertion failed at " << location.file_name() << ":" << location.line() << " - " << message << std::endl;
	throw std::runtime_error(message);
}

void NahidaProject::NahidaMockTest::Assertion::That(bool condition, const std::string& message, std::source_location location) {
	if (!condition) {
		Fail(message, location);
	}
}

void NahidaProject::NahidaMockTest::TestRunner::PrintSummary() {
	std::cout << "\nTest Summary:" << std::endl;
	std::cout << "Total: " << testCount_ << std::endl;
	std::cout << "Passed: " << passedCount_ << std::endl;
	std::cout << "Failed: " << failedCount_ << std::endl;
}
